背景补充
- 受集团一体化战略的影响:
- 希望 DataWorks 产品能够重新梳理,更好的解耦,并支持让用户使用阿里云的公共云产品搭建出来,比如用户购买 NAS, Git (云效), MC 之后,而不是让客户完全依赖我们的后端服务,我们做的可能也不专业。
- 更好的插件化:插件一样,购买了产品之后,DataWorks 所有的应用都可以直接感知到,例如某个产品的菜单多了一个引擎。
- 大数据开发的业界,基本都是以 DataWorks 为模板,我们怎么修改,业界就怎么抄。我们认为现在老版的数据开发已经达到比较稳定的状态了,下一个阶段我们需要通过升级 IDE 框架的基座,带来大数据开发的全新体验,同时也提高一下技术门槛,让业界没有那么容易复制。
前后端分离
如何思考的 WebIDE? 只需要前端? 后端需要什么支持?我们现在的问题就是后端话语权很重。
实际问题
- VS Code 的调研: Theia/开天/VS Code. 并深入了解
- 独立负责很多模块:
- 技术评审、设计文档
- 实现。周报里汇总各种动图实现的效果。
- 遇到问题:
- 通常会找师兄,问题带着解决方案,灵感碰撞。Code Review 之后再合并,虚线 +1 +2 都会帮我看一下问题,主要也是需要让 +1 +2 了解项目进度
- github 问官方团队成员。
- 实在不行,可能会考虑换一种交互方式。
- Code Review 师兄的一些设计,做了很多意见反馈
- 跨团队: 后端? 产品?前端?
- 后端: 有一些后端的同学,会一起讨论一些问题,比如后端的接口设计,前端的接口设计,前端的数据
- 支持 jupyterlite 之类的工作?
- 技术氛围:
- 发起技术分享,小团队。
- 小团建等。
- Code Review.
问题
自研框架无法直接复用开源生态,海量的插件。
项目经历
VS Code + XXXX
VS Code extension 开发生态: 脚手架、构建
VS Code 与我们业务结合方式。
介绍 VS Code 的架构,扩展与底座之间的关系。 底座与业务之间的关系。
VS Code 与传统的前端应用的区别,与 theia/open sumi 的区别
, 为什么需要用 worker 进程。 扩展进程挂掉 不会影响主进程
VS Code 遇到的性能问题, webview 加载,复杂的数据计算怎么办。 service Worker 拦截接口,web worker 复杂计算处理完毕之后通知主进程。
部署遇到的问题: worker 的跨域处理。背景: 无服务器形式部署。
when 的实现原理: when 解析。 依赖收集。 contextService 修改值。事件通知 Service 上下文已经被修改。 when 条件重新被执行。
如何自定义 contribution, UI 和 Service 自定义 sdk